package com.roads.site.mapper;

import com.roads.site.domain.SiteVideoUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户视频监控Mapper接口
 * 
 * @author nhp
 * @date 2024-10-15
 */
public interface SiteVideoUserMapper {

    /**
     * 根据主键ID查询详情
     *
     * @param id 用户视频监控主键
     * @return 用户视频监控
     */
    SiteVideoUser getModelById(Integer id);

    /**
     * 根据用户、应用场景、排序查询用户视频监控详情
     *
     * @param user 用户
     * @param type 应用场景
     * @param orderNum 排序
     * @return 用户视频监控
     */
    SiteVideoUser getModelByUserAndTypeAndOrderNum(@Param("user")String user, @Param("type")Integer type, @Param("orderNum")Integer orderNum);

    /**
     * 查询列表
     * 
     * @param model 用户视频列表
     * @return 用户视频监控集合
     */
    List<SiteVideoUser> selectModelList(SiteVideoUser model);

    /**
     * 根据用户和应用场景获取最大的视频监控排序值
     *
     * @param type 应用场景
     * @param user 用户
     * @return 最大排序值
     */
    int getMaxOrderNumByUserAndType(@Param("type")Integer type, @Param("user")String user);

    /**
     * 批量新增
     *
     * @param list 用户选择视频监控
     * @return 结果
     */
    int insertBatch(List<SiteVideoUser> list);

    /**
     * 修改
     *
     * @param model 用户视频监控
     * @return 结果
     */
    int update(SiteVideoUser model);

}
